{
  "contractName": "ClockAuction",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ownerCut",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "nonFungibleContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_nftAddress",
          "type": "address"
        },
        {
          "name": "_cut",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "startingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "endingPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "duration",
          "type": "uint256"
        }
      ],
      "name": "AuctionCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "totalPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "winner",
          "type": "address"
        }
      ],
      "name": "AuctionSuccessful",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "AuctionCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawBalance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "name": "_startingPrice",
          "type": "uint256"
        },
        {
          "name": "_endingPrice",
          "type": "uint256"
        },
        {
          "name": "_duration",
          "type": "uint256"
        },
        {
          "name": "_seller",
          "type": "address"
        }
      ],
      "name": "createAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "bid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "cancelAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "cancelAuctionWhenPaused",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "getAuction",
      "outputs": [
        {
          "name": "seller",
          "type": "address"
        },
        {
          "name": "startingPrice",
          "type": "uint256"
        },
        {
          "name": "endingPrice",
          "type": "uint256"
        },
        {
          "name": "duration",
          "type": "uint256"
        },
        {
          "name": "startedAt",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "getCurrentPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526000805460a060020a60ff021916905534801561002057600080fd5b50604051604080610f1183398101604052805160209091015160008054600160a060020a0319163317815561271082111561005a57600080fd5b8160028190555082905080600160a060020a0316631051db346040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156100bb57600080fd5b505af11580156100cf573d6000803e3d6000fd5b505050506040513d60208110156100e557600080fd5b505115156100f257600080fd5b60018054600160a060020a03909216600160a060020a03199092169190911790555050610ded806101246000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327ebe40a81146100e95780633f4ba83a14610118578063454a2ab31461012d5780635c975abb146101385780635fd8c71014610161578063715018a61461017657806378bd79351461018b57806383b5ff8b146101d85780638456cb59146101ff578063878eb368146102145780638da5cb5b1461022c57806396b5a7551461025d578063c55d0f5614610275578063dd1b7a0f1461028d578063f2fde38b146102a2575b3480156100e657600080fd5b50005b3480156100f557600080fd5b50610116600435602435604435606435600160a060020a03608435166102c3565b005b34801561012457600080fd5b506101166103d1565b610116600435610447565b34801561014457600080fd5b5061014d610476565b604080519115158252519081900360200190f35b34801561016d57600080fd5b50610116610486565b34801561018257600080fd5b506101166104f3565b34801561019757600080fd5b506101a360043561055f565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156101e457600080fd5b506101ed6105f5565b60408051918252519081900360200190f35b34801561020b57600080fd5b506101166105fb565b34801561022057600080fd5b50610116600435610676565b34801561023857600080fd5b506102416106df565b60408051600160a060020a039092168252519081900360200190f35b34801561026957600080fd5b506101166004356106ee565b34801561028157600080fd5b506101ed600435610738565b34801561029957600080fd5b5061024161076a565b3480156102ae57600080fd5b50610116600160a060020a0360043516610779565b6102cb610d93565b60005460a060020a900460ff16156102e257600080fd5b846fffffffffffffffffffffffffffffffff81106102ff57600080fd5b846fffffffffffffffffffffffffffffffff811061031c57600080fd5b8467ffffffffffffffff81111561033257600080fd5b61033c338a610799565b151561034757600080fd5b610351338a610842565b60a06040519081016040528086600160a060020a03168152602001896fffffffffffffffffffffffffffffffff168152602001886fffffffffffffffffffffffffffffffff1681526020018767ffffffffffffffff1681526020014267ffffffffffffffff1681525093506103c689856108d2565b505050505050505050565b600054600160a060020a031633146103e857600080fd5b60005460a060020a900460ff16151561040057600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff161561045e57600080fd5b6104688134610a26565b506104733382610b17565b50565b60005460a060020a900460ff1681565b600154600054600160a060020a0391821691163314806104ae575033600160a060020a038216145b15156104b957600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156104ef573d6000803e3d6000fd5b5050565b600054600160a060020a0316331461050a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600360205260408120819081908190819061057e81610b85565b151561058957600080fd5b80546001820154600290920154600160a060020a03909116986fffffffffffffffffffffffffffffffff8084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b600054600160a060020a0316331461061257600080fd5b60005460a060020a900460ff161561062957600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000805460a060020a900460ff16151561068f57600080fd5b600054600160a060020a031633146106a657600080fd5b5060008181526003602052604090206106be81610b85565b15156106c957600080fd5b80546104ef908390600160a060020a0316610ba6565b600054600160a060020a031681565b60008181526003602052604081209061070682610b85565b151561071157600080fd5b508054600160a060020a031633811461072957600080fd5b6107338382610ba6565b505050565b600081815260036020526040812061074f81610b85565b151561075a57600080fd5b61076381610bf0565b9392505050565b600154600160a060020a031681565b600054600160a060020a0316331461079057600080fd5b61047381610c80565b600154604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a0380871693911691636352211e9160248082019260209290919082900301818887803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051600160a060020a0316149392505050565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015260448201859052915191909216916323b872dd91606480830192600092919082900301818387803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050505050565b603c816060015167ffffffffffffffff16101515156108f057600080fd5b60008281526003602090815260409182902083518154600160a060020a0390911673ffffffffffffffffffffffffffffffffffffffff1990911617815581840151600182018054858701516fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000081029482166fffffffffffffffffffffffffffffffff19909316831790911693909317909155606080870151600290940180546080808a015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190981667ffffffffffffffff1990931683171696909617909155865189815295860192909252848601929092529083015291517fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7929181900390910190a15050565b600082815260036020526040812081808080610a4185610b85565b1515610a4c57600080fd5b610a5585610bf0565b935083871015610a6457600080fd5b8454600160a060020a03169250610a7a88610cfd565b6000841115610acc57610a8c84610d4a565b6040519092508285039150600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610aca573d6000803e3d6000fd5b505b6040805189815260208101869052338183015290517f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd29181900360600190a150919695505050505050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156108b657600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610baf82610cfd565b610bb98183610b17565b6040805183815290517f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df9181900360200190a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c365750600282015468010000000000000000900467ffffffffffffffff1642035b60018301546002840154610763916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610d56565b600160a060020a0381161515610c9557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610d6a57869350610d88565b878703925085858402811515610d7c57fe5b05915081880190508093505b505050949350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152905600a165627a7a7230582073e780ebd7d86213917f7b12044ca45c6eb6be4fb38206aab0e9276bd8bac7200029",
  "deployedBytecode": "0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166327ebe40a81146100e95780633f4ba83a14610118578063454a2ab31461012d5780635c975abb146101385780635fd8c71014610161578063715018a61461017657806378bd79351461018b57806383b5ff8b146101d85780638456cb59146101ff578063878eb368146102145780638da5cb5b1461022c57806396b5a7551461025d578063c55d0f5614610275578063dd1b7a0f1461028d578063f2fde38b146102a2575b3480156100e657600080fd5b50005b3480156100f557600080fd5b50610116600435602435604435606435600160a060020a03608435166102c3565b005b34801561012457600080fd5b506101166103d1565b610116600435610447565b34801561014457600080fd5b5061014d610476565b604080519115158252519081900360200190f35b34801561016d57600080fd5b50610116610486565b34801561018257600080fd5b506101166104f3565b34801561019757600080fd5b506101a360043561055f565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b3480156101e457600080fd5b506101ed6105f5565b60408051918252519081900360200190f35b34801561020b57600080fd5b506101166105fb565b34801561022057600080fd5b50610116600435610676565b34801561023857600080fd5b506102416106df565b60408051600160a060020a039092168252519081900360200190f35b34801561026957600080fd5b506101166004356106ee565b34801561028157600080fd5b506101ed600435610738565b34801561029957600080fd5b5061024161076a565b3480156102ae57600080fd5b50610116600160a060020a0360043516610779565b6102cb610d93565b60005460a060020a900460ff16156102e257600080fd5b846fffffffffffffffffffffffffffffffff81106102ff57600080fd5b846fffffffffffffffffffffffffffffffff811061031c57600080fd5b8467ffffffffffffffff81111561033257600080fd5b61033c338a610799565b151561034757600080fd5b610351338a610842565b60a06040519081016040528086600160a060020a03168152602001896fffffffffffffffffffffffffffffffff168152602001886fffffffffffffffffffffffffffffffff1681526020018767ffffffffffffffff1681526020014267ffffffffffffffff1681525093506103c689856108d2565b505050505050505050565b600054600160a060020a031633146103e857600080fd5b60005460a060020a900460ff16151561040057600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b60005460a060020a900460ff161561045e57600080fd5b6104688134610a26565b506104733382610b17565b50565b60005460a060020a900460ff1681565b600154600054600160a060020a0391821691163314806104ae575033600160a060020a038216145b15156104b957600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156104ef573d6000803e3d6000fd5b5050565b600054600160a060020a0316331461050a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000818152600360205260408120819081908190819061057e81610b85565b151561058957600080fd5b80546001820154600290920154600160a060020a03909116986fffffffffffffffffffffffffffffffff8084169950700100000000000000000000000000000000909304909216965067ffffffffffffffff808216965068010000000000000000909104169350915050565b60025481565b600054600160a060020a0316331461061257600080fd5b60005460a060020a900460ff161561062957600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b6000805460a060020a900460ff16151561068f57600080fd5b600054600160a060020a031633146106a657600080fd5b5060008181526003602052604090206106be81610b85565b15156106c957600080fd5b80546104ef908390600160a060020a0316610ba6565b600054600160a060020a031681565b60008181526003602052604081209061070682610b85565b151561071157600080fd5b508054600160a060020a031633811461072957600080fd5b6107338382610ba6565b505050565b600081815260036020526040812061074f81610b85565b151561075a57600080fd5b61076381610bf0565b9392505050565b600154600160a060020a031681565b600054600160a060020a0316331461079057600080fd5b61047381610c80565b600154604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a0380871693911691636352211e9160248082019260209290919082900301818887803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051600160a060020a0316149392505050565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015260448201859052915191909216916323b872dd91606480830192600092919082900301818387803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050505050565b603c816060015167ffffffffffffffff16101515156108f057600080fd5b60008281526003602090815260409182902083518154600160a060020a0390911673ffffffffffffffffffffffffffffffffffffffff1990911617815581840151600182018054858701516fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000081029482166fffffffffffffffffffffffffffffffff19909316831790911693909317909155606080870151600290940180546080808a015167ffffffffffffffff90811668010000000000000000026fffffffffffffffff0000000000000000199190981667ffffffffffffffff1990931683171696909617909155865189815295860192909252848601929092529083015291517fa9c8dfcda5664a5a124c713e386da27de87432d5b668e79458501eb296389ba7929181900390910190a15050565b600082815260036020526040812081808080610a4185610b85565b1515610a4c57600080fd5b610a5585610bf0565b935083871015610a6457600080fd5b8454600160a060020a03169250610a7a88610cfd565b6000841115610acc57610a8c84610d4a565b6040519092508285039150600160a060020a0384169082156108fc029083906000818181858888f19350505050158015610aca573d6000803e3d6000fd5b505b6040805189815260208101869052338183015290517f4fcc30d90a842164dd58501ab874a101a3749c3d4747139cefe7c876f4ccebd29181900360600190a150919695505050505050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156108b657600080fd5b6002015460006801000000000000000090910467ffffffffffffffff161190565b610baf82610cfd565b610bb98183610b17565b6040805183815290517f2809c7e17bf978fbc7194c0a694b638c4215e9140cacc6c38ca36010b45697df9181900360200190a15050565b6002810154600090819068010000000000000000900467ffffffffffffffff16421115610c365750600282015468010000000000000000900467ffffffffffffffff1642035b60018301546002840154610763916fffffffffffffffffffffffffffffffff80821692700100000000000000000000000000000000909204169067ffffffffffffffff1684610d56565b600160a060020a0381161515610c9557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181019190915560020180546fffffffffffffffffffffffffffffffff19169055565b60025461271091020490565b6000808080858510610d6a57869350610d88565b878703925085858402811515610d7c57fe5b05915081880190508093505b505050949350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152905600a165627a7a7230582073e780ebd7d86213917f7b12044ca45c6eb6be4fb38206aab0e9276bd8bac7200029",
  "sourceMap": "474:4841:14:-;;;268:5:60;247:26;;-1:-1:-1;;;;;;247:26:60;;;878:289:14;5:2:-1;;;;30:1;27;20:12;5:2;878:289:14;;;;;;;;;;;;;;;;;;;1010:24;567:18:62;;-1:-1:-1;;;;;;567:18:62;575:10;567:18;;;968:5:14;960:13;;;952:22;;;;;;995:4;984:8;:15;;;;1044:11;1010:46;;1074:17;-1:-1:-1;;;;;1074:34:14;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1074:36:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1074:36:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1074:36:14;1066:45;;;;;;;;1121:19;:39;;-1:-1:-1;;;;;1121:39:14;;;-1:-1:-1;;;;;;1121:39:14;;;;;;;;;-1:-1:-1;;474:4841:14;;;;;;",
  "deployedSourceMap": "474:4841:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;474:4841:14;;2127:676;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2127:676:14;;;;;;;;;-1:-1:-1;;;;;2127:676:14;;;;;;;838:92:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:60;;;;2995:233:14;;;;;;247:26:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:60;;;;;;;;;;;;;;;;;;;;;;1432:246:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1432:246:14;;;;1001:111:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:62;;;;4415:523:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4415:523:14;;;;;;;;;-1:-1:-1;;;;;4415:523:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:23:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:23:15;;;;;;;;;;;;;;;;;;;;666:90:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:60;;;;4038:266:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4038:266:14;;;;;238:20:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:62;;;;;;;;-1:-1:-1;;;;;238:20:62;;;;;;;;;;;;;;3494:291:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3494:291:14;;;;;5063:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5063:249:14;;;;;949:33:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;949:33:15;;;;1274:103:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:62;-1:-1:-1;;;;;1274:103:62;;;;;2127:676:14;2565:22;;:::i;:::-;416:6:60;;-1:-1:-1;;;416:6:60;;;;415:7;407:16;;;;;;2364:14:14;1898:39:15;1889:48;;1881:57;;;;;;2411:12:14;1898:39:15;1889:48;;1881:57;;;;;;2455:9:14;1778:20:15;1768:30;;;1760:39;;;;;;2488:27:14;2494:10;2506:8;2488:5;:27::i;:::-;2480:36;;;;;;;;2526:29;2534:10;2546:8;2526:7;:29::i;:::-;2590:166;;;;;;;;;2611:7;-1:-1:-1;;;;;2590:166:14;;;;;2640:14;2590:166;;;;;;2677:12;2590:166;;;;;;2711:9;2590:166;;;;;;2742:3;2590:166;;;;;2565:191;;2766:30;2778:8;2788:7;2766:11;:30::i;:::-;1948:1:15;;429::60;2127:676:14;;;;;;:::o;838:92:60:-;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;568:6:60;;-1:-1:-1;;;568:6:60;;;;560:15;;;;;;;;900:5;891:14;;-1:-1:-1;;891:14:60;;;916:9;;;;900:5;916:9;838:92::o;2995:233:14:-;416:6:60;;-1:-1:-1;;;416:6:60;;;;415:7;407:16;;;;;;3155:25:14;3160:8;3170:9;3155:4;:25::i;:::-;;3190:31;3200:10;3212:8;3190:9;:31::i;:::-;2995:233;:::o;247:26:60:-;;;-1:-1:-1;;;247:26:60;;;;;:::o;1432:246:14:-;1507:19;;1478:18;1573:5;-1:-1:-1;;;;;1507:19:14;;;;1573:5;1559:10;:19;;:59;;-1:-1:-1;1594:10:14;-1:-1:-1;;;;;1594:24:14;;;1559:59;1538:90;;;;;;;;1638:33;;-1:-1:-1;;;;;1638:19:14;;;1658:4;:12;1638:33;;;;;;;;;1658:12;1638:19;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1638:33:14;1432:246;:::o;1001:111:62:-;719:5;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:62;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:62;;;1001:111::o;4415:523:14:-;4511:14;4681:26;;;:16;:26;;;;;4511:14;;;;;;;;4725:21;4681:26;4725:12;:21::i;:::-;4717:30;;;;;;;;4778:14;;;4806:21;;;4874:16;;;;;-1:-1:-1;;;;;4778:14:14;;;;4806:21;;;;;-1:-1:-1;4841:19:14;;;;;;;;-1:-1:-1;4874:16:14;;;;;-1:-1:-1;4904:17:14;;;;;;-1:-1:-1;4415:523:14;-1:-1:-1;;4415:523:14:o;1114:23:15:-;;;;:::o;666:90:60:-;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;416:6:60;;-1:-1:-1;;;416:6:60;;;;415:7;407:16;;;;;;720:6;:13;;-1:-1:-1;;720:13:60;-1:-1:-1;;;720:13:60;;;744:7;;;;720:6;744:7;666:90::o;4038:266:14:-;4155:23;568:6:60;;-1:-1:-1;;;568:6:60;;;;560:15;;;;;;;;719:5:62;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;-1:-1:-1;4181:26:14;;;;:16;:26;;;;;4225:21;4181:26;4225:12;:21::i;:::-;4217:30;;;;;;;;4282:14;;4257:40;;4272:8;;-1:-1:-1;;;;;4282:14:14;4257;:40::i;238:20:62:-;;;-1:-1:-1;;;;;238:20:62;;:::o;3494:291:14:-;3564:23;3590:26;;;:16;:26;;;;;;3634:21;3590:26;3634:12;:21::i;:::-;3626:30;;;;;;;;-1:-1:-1;3683:14:14;;-1:-1:-1;;;;;3683:14:14;3715:10;:20;;3707:29;;;;;;3746:32;3761:8;3771:6;3746:14;:32::i;:::-;3494:291;;;:::o;5063:249::-;5151:7;5200:26;;;:16;:26;;;;;5244:21;5200:26;5244:12;:21::i;:::-;5236:30;;;;;;;;5283:22;5297:7;5283:13;:22::i;:::-;5276:29;5063:249;-1:-1:-1;;;5063:249:14:o;949:33:15:-;;;-1:-1:-1;;;;;949:33:15;;:::o;1274:103:62:-;719:5;;-1:-1:-1;;;;;719:5:62;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;2147:157:15:-;2246:19;;:37;;;;;;;;;;;;;;2222:4;;-1:-1:-1;;;;;2246:50:15;;;;:19;;;:27;;:37;;;;;;;;;;;;;;;2222:4;2246:19;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;2246:37:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2246:37:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2246:37:15;-1:-1:-1;;;;;2246:50:15;;;2147:157;-1:-1:-1;;;2147:157:15:o;2544:176::-;2657:19;;:56;;;;;;-1:-1:-1;;;;;2657:56:15;;;;;;;2698:4;2657:56;;;;;;;;;;;;:19;;;;;:32;;:56;;;;;:19;;:56;;;;;;;:19;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;2657:56:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2657:56:15;;;;2544:176;;:::o;3343:502::-;3573:9;3552:8;:17;;;:30;;;;3544:39;;;;;;;;3594:26;;;;:16;:26;;;;;;;;;:37;;;;-1:-1:-1;;;;;3594:37:15;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3594:37:15;;;;-1:-1:-1;;3594:37:15;;;;;;;;;;;;;3655:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3343:502;;:::o;4196:2095::-;4282:7;4380:26;;;:16;:26;;;;;4282:7;;;;4687:21;4380:26;4687:12;:21::i;:::-;4679:30;;;;;;;;4819:22;4833:7;4819:13;:22::i;:::-;4803:38;-1:-1:-1;4859:19:15;;;;4851:28;;;;;;5000:14;;-1:-1:-1;;;;;5000:14:15;;-1:-1:-1;5159:24:15;5174:8;5159:14;:24::i;:::-;5265:1;5257:5;:9;5253:920;;;5488:18;5500:5;5488:11;:18::i;:::-;6131:31;;5464:42;;-1:-1:-1;5545:21:15;;;;-1:-1:-1;;;;;;6131:15:15;;;:31;;;;;5545:21;;6131:31;;;;5545:21;6131:15;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6131:31:15;5253:920;6215:46;;;;;;;;;;;;6250:10;6215:46;;;;;;;;;;;;;;;-1:-1:-1;6279:5:15;;4196:2095;-1:-1:-1;;;;;;4196:2095:15:o;2952:174::-;3070:19;;:49;;;;;;-1:-1:-1;;;;;3070:49:15;;;;;;;;;;;;;;;:19;;;;;:28;;:49;;;;;:19;;:49;;;;;;;:19;;:49;;;5:2:-1;;;;30:1;27;20:12;6612:125:15;6707:18;;;6683:4;6707:18;;;;;;:22;;6612:125::o;3900:188::-;3978:24;3993:8;3978:14;:24::i;:::-;4012:28;4022:7;4031:8;4012:9;:28::i;:::-;4055:26;;;;;;;;;;;;;;;;;3900:188;;:::o;7032:633::-;7398:18;;;;7128:7;;;;7398:18;;;;;7392:3;:24;7388:95;;;-1:-1:-1;7454:18:15;;;;;;;;;7448:3;:24;7388:95;7534:22;;;;7604:17;;;;7500:158;;7534:22;;;;;7570:20;;;;;;7604:17;;7635:13;7500:20;:158::i;1512:171:62:-;-1:-1:-1;;;;;1582:23:62;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:62;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:62;-1:-1:-1;;;;;1661:17:62;;;;;;;;;;1512:171::o;6409:101:15:-;6477:26;;;;:16;:26;;;;;6470:33;;-1:-1:-1;;6470:33:15;;;;;;;;;;;;;;-1:-1:-1;;6470:33:15;;;6409:101::o;9656:482::-;10115:8;;10126:5;10106:17;;:25;;9656:482::o;7913:1649::-;8117:7;;;;8466:27;;;8462:1094;;8642:12;8635:19;;;;8462:1094;8866:14;8843:12;8836:45;8810:71;;9216:9;9191:14;9165:16;:41;:61;;;;;;;;9137:89;;9472:18;9454:14;9447:43;9425:65;;9532:12;9517:28;;8462:1094;7913:1649;;;;;;;;;:::o;474:4841:14:-;;;;;;;;;-1:-1:-1;474:4841:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "/* solium-disable */\n/**\n *  @title Clock auction for non-fungible tokens.\n *  @author dapperlabs (https://github.com/dapperlabs)\n *  This code was taken from https://github.com/dapperlabs at\n *  https://github.com/dapperlabs/cryptokitties-bounty and is NOT kleros code.\n */\npragma solidity ^0.4.18;\n\nimport \"../ERC721.sol\";\nimport \"./ClockAuctionBase.sol\";\nimport \"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\";\n\n/// @title Clock auction for non-fungible tokens.\ncontract ClockAuction is Pausable, ClockAuctionBase {\n\n    /// @dev Constructor creates a reference to the NFT ownership contract\n    ///  and verifies the owner cut is in the valid range.\n    /// @param _nftAddress - address of a deployed contract implementing\n    ///  the Nonfungible Interface.\n    /// @param _cut - percent cut the owner takes on each auction, must be\n    ///  between 0-10,000.\n    function ClockAuction(address _nftAddress, uint256 _cut) public {\n        require(_cut <= 10000);\n        ownerCut = _cut;\n\n        ERC721 candidateContract = ERC721(_nftAddress);\n        require(candidateContract.implementsERC721());\n        nonFungibleContract = candidateContract;\n    }\n\n    /// @dev Remove all Ether from the contract, which is the owner's cuts\n    ///  as well as any Ether sent directly to the contract address.\n    ///  Always transfers to the NFT contract, but can be called either by\n    ///  the owner or the NFT contract.\n    function withdrawBalance() external {\n        address nftAddress = address(nonFungibleContract);\n\n        require(\n            msg.sender == owner ||\n            msg.sender == nftAddress\n        );\n        nftAddress.transfer(this.balance);\n    }\n\n    /// @dev Creates and begins a new auction.\n    /// @param _tokenId - ID of token to auction, sender must be owner.\n    /// @param _startingPrice - Price of item (in wei) at beginning of auction.\n    /// @param _endingPrice - Price of item (in wei) at end of auction.\n    /// @param _duration - Length of time to move between starting\n    ///  price and ending price (in seconds).\n    /// @param _seller - Seller, if not the message sender\n    function createAuction(\n        uint256 _tokenId,\n        uint256 _startingPrice,\n        uint256 _endingPrice,\n        uint256 _duration,\n        address _seller\n    )\n        public\n        whenNotPaused\n        canBeStoredWith128Bits(_startingPrice)\n        canBeStoredWith128Bits(_endingPrice)\n        canBeStoredWith64Bits(_duration)\n    {\n        require(_owns(msg.sender, _tokenId));\n        _escrow(msg.sender, _tokenId);\n        Auction memory auction = Auction(\n            _seller,\n            uint128(_startingPrice),\n            uint128(_endingPrice),\n            uint64(_duration),\n            uint64(now)\n        );\n        _addAuction(_tokenId, auction);\n    }\n\n    /// @dev Bids on an open auction, completing the auction and transferring\n    ///  ownership of the NFT if enough Ether is supplied.\n    /// @param _tokenId - ID of token to bid on.\n    function bid(uint256 _tokenId)\n        public\n        payable\n        whenNotPaused\n    {\n        // _bid will throw if the bid or funds transfer fails\n        _bid(_tokenId, msg.value);\n        _transfer(msg.sender, _tokenId);\n    }\n\n    /// @dev Cancels an auction that hasn't been won yet.\n    ///  Returns the NFT to original owner.\n    /// @notice This is a state-modifying function that can\n    ///  be called while the contract is paused.\n    /// @param _tokenId - ID of token on auction\n    function cancelAuction(uint256 _tokenId)\n        public\n    {\n        Auction storage auction = tokenIdToAuction[_tokenId];\n        require(_isOnAuction(auction));\n        address seller = auction.seller;\n        require(msg.sender == seller);\n        _cancelAuction(_tokenId, seller);\n    }\n\n    /// @dev Cancels an auction when the contract is paused.\n    ///  Only the owner may do this, and NFTs are returned to\n    ///  the seller. This should only be used in emergencies.\n    /// @param _tokenId - ID of the NFT on auction to cancel.\n    function cancelAuctionWhenPaused(uint256 _tokenId)\n        whenPaused\n        onlyOwner\n        public\n    {\n        Auction storage auction = tokenIdToAuction[_tokenId];\n        require(_isOnAuction(auction));\n        _cancelAuction(_tokenId, auction.seller);\n    }\n\n    /// @dev Returns auction info for an NFT on auction.\n    /// @param _tokenId - ID of NFT on auction.\n    function getAuction(uint256 _tokenId)\n        public\n        view\n        returns\n    (\n        address seller,\n        uint256 startingPrice,\n        uint256 endingPrice,\n        uint256 duration,\n        uint256 startedAt\n    ) {\n        Auction storage auction = tokenIdToAuction[_tokenId];\n        require(_isOnAuction(auction));\n        return (\n            auction.seller,\n            auction.startingPrice,\n            auction.endingPrice,\n            auction.duration,\n            auction.startedAt\n        );\n    }\n\n    /// @dev Returns the current price of an auction.\n    /// @param _tokenId - ID of the token price we are checking.\n    function getCurrentPrice(uint256 _tokenId)\n        public\n        view\n        returns (uint256)\n    {\n        Auction storage auction = tokenIdToAuction[_tokenId];\n        require(_isOnAuction(auction));\n        return _currentPrice(auction);\n    }\n\n}\n",
  "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
  "ast": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
    "exportedSymbols": {
      "ClockAuction": [
        5704
      ]
    },
    "id": 5705,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5424,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "275:24:14"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
        "file": "../ERC721.sol",
        "id": 5425,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 6436,
        "src": "301:23:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuctionBase.sol",
        "file": "./ClockAuctionBase.sol",
        "id": 5426,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 6092,
        "src": "325:32:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 5427,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 19753,
        "src": "358:64:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5428,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 19752,
              "src": "499:8:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$19752",
                "typeString": "contract Pausable"
              }
            },
            "id": 5429,
            "nodeType": "InheritanceSpecifier",
            "src": "499:8:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5430,
              "name": "ClockAuctionBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6091,
              "src": "509:16:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                "typeString": "contract ClockAuctionBase"
              }
            },
            "id": 5431,
            "nodeType": "InheritanceSpecifier",
            "src": "509:16:14"
          }
        ],
        "contractDependencies": [
          6091,
          19752,
          19932
        ],
        "contractKind": "contract",
        "documentation": "@title Clock auction for non-fungible tokens.",
        "fullyImplemented": true,
        "id": 5704,
        "linearizedBaseContracts": [
          5704,
          6091,
          19752,
          19932
        ],
        "name": "ClockAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 5464,
              "nodeType": "Block",
              "src": "942:225:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5441,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5439,
                          "name": "_cut",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5435,
                          "src": "960:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3130303030",
                          "id": 5440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "968:5:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_10000_by_1",
                            "typeString": "int_const 10000"
                          },
                          "value": "10000"
                        },
                        "src": "960:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5438,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "952:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "952:22:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5443,
                  "nodeType": "ExpressionStatement",
                  "src": "952:22:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5444,
                      "name": "ownerCut",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5722,
                      "src": "984:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5445,
                      "name": "_cut",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5435,
                      "src": "995:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "984:15:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5447,
                  "nodeType": "ExpressionStatement",
                  "src": "984:15:14"
                },
                {
                  "assignments": [
                    5449
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5449,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 5465,
                      "src": "1010:24:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5448,
                        "name": "ERC721",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6435,
                        "src": "1010:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5453,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5451,
                        "name": "_nftAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5433,
                        "src": "1044:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5450,
                      "name": "ERC721",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6435,
                      "src": "1037:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ERC721_$6435_$",
                        "typeString": "type(contract ERC721)"
                      }
                    },
                    "id": 5452,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1037:19:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC721_$6435",
                      "typeString": "contract ERC721"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1010:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5455,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5449,
                            "src": "1074:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ERC721_$6435",
                              "typeString": "contract ERC721"
                            }
                          },
                          "id": 5456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "implementsERC721",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6376,
                          "src": "1074:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_bool_$",
                            "typeString": "function () pure external returns (bool)"
                          }
                        },
                        "id": 5457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1074:36:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5454,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1066:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1066:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5459,
                  "nodeType": "ExpressionStatement",
                  "src": "1066:45:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5460,
                      "name": "nonFungibleContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5720,
                      "src": "1121:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5461,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5449,
                      "src": "1143:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      }
                    },
                    "src": "1121:39:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC721_$6435",
                      "typeString": "contract ERC721"
                    }
                  },
                  "id": 5463,
                  "nodeType": "ExpressionStatement",
                  "src": "1121:39:14"
                }
              ]
            },
            "documentation": "@dev Constructor creates a reference to the NFT ownership contract\n  and verifies the owner cut is in the valid range.\n @param _nftAddress - address of a deployed contract implementing\n  the Nonfungible Interface.\n @param _cut - percent cut the owner takes on each auction, must be\n  between 0-10,000.",
            "id": 5465,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "ClockAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5433,
                  "name": "_nftAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 5465,
                  "src": "900:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5432,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "900:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5435,
                  "name": "_cut",
                  "nodeType": "VariableDeclaration",
                  "scope": 5465,
                  "src": "921:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5434,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "899:35:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5437,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "942:0:14"
            },
            "scope": 5704,
            "src": "878:289:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5493,
              "nodeType": "Block",
              "src": "1468:210:14",
              "statements": [
                {
                  "assignments": [
                    5469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5469,
                      "name": "nftAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 5494,
                      "src": "1478:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5468,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1478:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5473,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5471,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "1507:19:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      ],
                      "id": 5470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1499:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 5472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1499:28:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1478:49:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5475,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1559:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1559:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5477,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19850,
                            "src": "1573:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1559:19:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5482,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5479,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1594:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1594:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5481,
                            "name": "nftAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5469,
                            "src": "1608:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1594:24:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1559:59:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5474,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1538:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1538:90:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5485,
                  "nodeType": "ExpressionStatement",
                  "src": "1538:90:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5489,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20686,
                          "src": "1658:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ClockAuction_$5704",
                            "typeString": "contract ClockAuction"
                          }
                        },
                        "id": 5490,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1658:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5486,
                        "name": "nftAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "1638:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 5488,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1638:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1638:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5492,
                  "nodeType": "ExpressionStatement",
                  "src": "1638:33:14"
                }
              ]
            },
            "documentation": "@dev Remove all Ether from the contract, which is the owner's cuts\n  as well as any Ether sent directly to the contract address.\n  Always transfers to the NFT contract, but can be called either by\n  the owner or the NFT contract.",
            "id": 5494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5466,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1456:2:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5467,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1468:0:14"
            },
            "scope": 5704,
            "src": "1432:246:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5555,
              "nodeType": "Block",
              "src": "2470:333:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5520,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "2494:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2494:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5522,
                            "name": "_tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5496,
                            "src": "2506:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5519,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5794,
                          "src": "2488:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 5523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2488:27:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5518,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2480:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2480:36:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5525,
                  "nodeType": "ExpressionStatement",
                  "src": "2480:36:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5527,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2534:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2534:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5529,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5496,
                        "src": "2546:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5526,
                      "name": "_escrow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5810,
                      "src": "2526:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5531,
                  "nodeType": "ExpressionStatement",
                  "src": "2526:29:14"
                },
                {
                  "assignments": [
                    5533
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5533,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5556,
                      "src": "2565:22:14",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5532,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "2565:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5549,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5535,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5504,
                        "src": "2611:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5537,
                            "name": "_startingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5498,
                            "src": "2640:14:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2632:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 5538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2632:23:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5540,
                            "name": "_endingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5500,
                            "src": "2677:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5539,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2669:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 5541,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2669:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5543,
                            "name": "_duration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5502,
                            "src": "2711:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2704:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 5544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2704:17:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5546,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "2742:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2735:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 5547,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2735:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 5534,
                      "name": "Auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5718,
                      "src": "2590:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Auction_$5718_storage_ptr_$",
                        "typeString": "type(struct ClockAuctionBase.Auction storage pointer)"
                      }
                    },
                    "id": 5548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2590:166:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_memory",
                      "typeString": "struct ClockAuctionBase.Auction memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2565:191:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5551,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5496,
                        "src": "2778:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5552,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5533,
                        "src": "2788:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      ],
                      "id": 5550,
                      "name": "_addAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5864,
                      "src": "2766:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_Auction_$5718_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,struct ClockAuctionBase.Auction memory)"
                      }
                    },
                    "id": 5553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2766:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5554,
                  "nodeType": "ExpressionStatement",
                  "src": "2766:30:14"
                }
              ]
            },
            "documentation": "@dev Creates and begins a new auction.\n @param _tokenId - ID of token to auction, sender must be owner.\n @param _startingPrice - Price of item (in wei) at beginning of auction.\n @param _endingPrice - Price of item (in wei) at end of auction.\n @param _duration - Length of time to move between starting\n  price and ending price (in seconds).\n @param _seller - Seller, if not the message sender",
            "id": 5556,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5507,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5506,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19713,
                  "src": "2319:13:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2319:13:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5509,
                    "name": "_startingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5498,
                    "src": "2364:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5510,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5508,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "2341:22:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2341:38:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5512,
                    "name": "_endingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5500,
                    "src": "2411:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5513,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5511,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "2388:22:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2388:36:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5515,
                    "name": "_duration",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5502,
                    "src": "2455:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5516,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5514,
                  "name": "canBeStoredWith64Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5764,
                  "src": "2433:21:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2433:32:14"
              }
            ],
            "name": "createAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5496,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2159:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5495,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2159:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5498,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2185:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5497,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2185:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5500,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2217:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5499,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2217:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5502,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2247:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5501,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2247:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5504,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2274:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5503,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2274:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2149:146:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5517,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2470:0:14"
            },
            "scope": 5704,
            "src": "2127:676:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5575,
              "nodeType": "Block",
              "src": "3083:145:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5564,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5558,
                        "src": "3160:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5565,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3170:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5566,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3170:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5563,
                      "name": "_bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5960,
                      "src": "3155:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 5567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3155:25:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5568,
                  "nodeType": "ExpressionStatement",
                  "src": "3155:25:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5570,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3200:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3200:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5572,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5558,
                        "src": "3212:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5569,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "3190:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3190:31:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5574,
                  "nodeType": "ExpressionStatement",
                  "src": "3190:31:14"
                }
              ]
            },
            "documentation": "@dev Bids on an open auction, completing the auction and transferring\n  ownership of the NFT if enough Ether is supplied.\n @param _tokenId - ID of token to bid on.",
            "id": 5576,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5561,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5560,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19713,
                  "src": "3065:13:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3065:13:14"
              }
            ],
            "name": "bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5558,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "3008:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5557,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3008:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3007:18:14"
            },
            "payable": true,
            "returnParameters": {
              "id": 5562,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3083:0:14"
            },
            "scope": 5704,
            "src": "2995:233:14",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5610,
              "nodeType": "Block",
              "src": "3554:231:14",
              "statements": [
                {
                  "assignments": [
                    5582
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5582,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5611,
                      "src": "3564:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5581,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "3564:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5586,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5583,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "3590:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5585,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5584,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5578,
                      "src": "3607:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3590:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3564:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5589,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5582,
                            "src": "3647:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5588,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "3634:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5590,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5587,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3626:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3626:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5592,
                  "nodeType": "ExpressionStatement",
                  "src": "3626:30:14"
                },
                {
                  "assignments": [
                    5594
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5594,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 5611,
                      "src": "3666:14:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5593,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3666:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5597,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 5595,
                      "name": "auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5582,
                      "src": "3683:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction storage pointer"
                      }
                    },
                    "id": 5596,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "3683:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3666:31:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5599,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "3715:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 5600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3715:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5601,
                          "name": "seller",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5594,
                          "src": "3729:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3715:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5598,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3707:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3707:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5604,
                  "nodeType": "ExpressionStatement",
                  "src": "3707:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5606,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "3761:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5607,
                        "name": "seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5594,
                        "src": "3771:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5605,
                      "name": "_cancelAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "3746:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 5608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3746:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5609,
                  "nodeType": "ExpressionStatement",
                  "src": "3746:32:14"
                }
              ]
            },
            "documentation": "@dev Cancels an auction that hasn't been won yet.\n  Returns the NFT to original owner.\n @notice This is a state-modifying function that can\n  be called while the contract is paused.\n @param _tokenId - ID of token on auction",
            "id": 5611,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5578,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5611,
                  "src": "3517:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3516:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5580,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3554:0:14"
            },
            "scope": 5704,
            "src": "3494:291:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5638,
              "nodeType": "Block",
              "src": "4145:159:14",
              "statements": [
                {
                  "assignments": [
                    5621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5621,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5639,
                      "src": "4155:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5620,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4155:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5625,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5622,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4181:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5624,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5623,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5613,
                      "src": "4198:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4181:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4155:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5628,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5621,
                            "src": "4238:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5627,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4225:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4225:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5626,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4217:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4217:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5631,
                  "nodeType": "ExpressionStatement",
                  "src": "4217:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5633,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5613,
                        "src": "4272:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5634,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5621,
                          "src": "4282:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5635,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "seller",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5709,
                        "src": "4282:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5632,
                      "name": "_cancelAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "4257:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 5636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4257:40:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5637,
                  "nodeType": "ExpressionStatement",
                  "src": "4257:40:14"
                }
              ]
            },
            "documentation": "@dev Cancels an auction when the contract is paused.\n  Only the owner may do this, and NFTs are returned to\n  the seller. This should only be used in emergencies.\n @param _tokenId - ID of the NFT on auction to cancel.",
            "id": 5639,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5616,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5615,
                  "name": "whenPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19721,
                  "src": "4097:10:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4097:10:14"
              },
              {
                "arguments": null,
                "id": 5618,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5617,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19880,
                  "src": "4116:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4116:9:14"
              }
            ],
            "name": "cancelAuctionWhenPaused",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5613,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "4071:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5612,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4071:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4070:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5619,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4145:0:14"
            },
            "scope": 5704,
            "src": "4038:266:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5678,
              "nodeType": "Block",
              "src": "4645:293:14",
              "statements": [
                {
                  "assignments": [
                    5655
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5655,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5679,
                      "src": "4655:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5654,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4655:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5659,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5656,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4681:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5658,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5657,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5641,
                      "src": "4698:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4681:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4655:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5662,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5655,
                            "src": "4738:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5661,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4725:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4725:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5660,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4717:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4717:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5665,
                  "nodeType": "ExpressionStatement",
                  "src": "4717:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5666,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4778:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5667,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "seller",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5709,
                        "src": "4778:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5668,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4806:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5669,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5711,
                        "src": "4806:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5670,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4841:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5671,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "endingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5713,
                        "src": "4841:19:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5672,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4874:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5673,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "duration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5715,
                        "src": "4874:16:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5674,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4904:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5675,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startedAt",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5717,
                        "src": "4904:17:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "id": 5676,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "4764:167:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint128_$_t_uint128_$_t_uint64_$_t_uint64_$",
                      "typeString": "tuple(address,uint128,uint128,uint64,uint64)"
                    }
                  },
                  "functionReturnParameters": 5653,
                  "id": 5677,
                  "nodeType": "Return",
                  "src": "4757:174:14"
                }
              ]
            },
            "documentation": "@dev Returns auction info for an NFT on auction.\n @param _tokenId - ID of NFT on auction.",
            "id": 5679,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5641,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4435:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4435:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4434:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5644,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4511:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5643,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4511:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5646,
                  "name": "startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4535:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5645,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4535:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5648,
                  "name": "endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4566:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5647,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5650,
                  "name": "duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4595:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5649,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4595:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5652,
                  "name": "startedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4621:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5651,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4621:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4501:143:14"
            },
            "scope": 5704,
            "src": "4415:523:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5702,
              "nodeType": "Block",
              "src": "5164:148:14",
              "statements": [
                {
                  "assignments": [
                    5687
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5687,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5703,
                      "src": "5174:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5686,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "5174:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5691,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5688,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "5200:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5690,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5689,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5681,
                      "src": "5217:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5200:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5174:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5694,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5687,
                            "src": "5257:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5693,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "5244:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5244:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5692,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "5236:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5236:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5697,
                  "nodeType": "ExpressionStatement",
                  "src": "5236:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5699,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5687,
                        "src": "5297:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      ],
                      "id": 5698,
                      "name": "_currentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6020,
                      "src": "5283:13:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 5700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5283:22:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5685,
                  "id": 5701,
                  "nodeType": "Return",
                  "src": "5276:29:14"
                }
              ]
            },
            "documentation": "@dev Returns the current price of an auction.\n @param _tokenId - ID of the token price we are checking.",
            "id": 5703,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5682,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5681,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5703,
                  "src": "5088:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5680,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5088:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5087:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5685,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5684,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5703,
                  "src": "5151:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5151:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5150:9:14"
            },
            "scope": 5704,
            "src": "5063:249:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 5705,
        "src": "474:4841:14"
      }
    ],
    "src": "275:5041:14"
  },
  "legacyAST": {
    "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuction.sol",
    "exportedSymbols": {
      "ClockAuction": [
        5704
      ]
    },
    "id": 5705,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5424,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".18"
        ],
        "nodeType": "PragmaDirective",
        "src": "275:24:14"
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
        "file": "../ERC721.sol",
        "id": 5425,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 6436,
        "src": "301:23:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/Auction/ClockAuctionBase.sol",
        "file": "./ClockAuctionBase.sol",
        "id": 5426,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 6092,
        "src": "325:32:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 5427,
        "nodeType": "ImportDirective",
        "scope": 5705,
        "sourceUnit": 19753,
        "src": "358:64:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5428,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 19752,
              "src": "499:8:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$19752",
                "typeString": "contract Pausable"
              }
            },
            "id": 5429,
            "nodeType": "InheritanceSpecifier",
            "src": "499:8:14"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5430,
              "name": "ClockAuctionBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6091,
              "src": "509:16:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ClockAuctionBase_$6091",
                "typeString": "contract ClockAuctionBase"
              }
            },
            "id": 5431,
            "nodeType": "InheritanceSpecifier",
            "src": "509:16:14"
          }
        ],
        "contractDependencies": [
          6091,
          19752,
          19932
        ],
        "contractKind": "contract",
        "documentation": "@title Clock auction for non-fungible tokens.",
        "fullyImplemented": true,
        "id": 5704,
        "linearizedBaseContracts": [
          5704,
          6091,
          19752,
          19932
        ],
        "name": "ClockAuction",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 5464,
              "nodeType": "Block",
              "src": "942:225:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5441,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 5439,
                          "name": "_cut",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5435,
                          "src": "960:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "3130303030",
                          "id": 5440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "968:5:14",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_10000_by_1",
                            "typeString": "int_const 10000"
                          },
                          "value": "10000"
                        },
                        "src": "960:13:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5438,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "952:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "952:22:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5443,
                  "nodeType": "ExpressionStatement",
                  "src": "952:22:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5444,
                      "name": "ownerCut",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5722,
                      "src": "984:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5445,
                      "name": "_cut",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5435,
                      "src": "995:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "984:15:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5447,
                  "nodeType": "ExpressionStatement",
                  "src": "984:15:14"
                },
                {
                  "assignments": [
                    5449
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5449,
                      "name": "candidateContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 5465,
                      "src": "1010:24:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5448,
                        "name": "ERC721",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6435,
                        "src": "1010:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5453,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5451,
                        "name": "_nftAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5433,
                        "src": "1044:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5450,
                      "name": "ERC721",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6435,
                      "src": "1037:6:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ERC721_$6435_$",
                        "typeString": "type(contract ERC721)"
                      }
                    },
                    "id": 5452,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1037:19:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC721_$6435",
                      "typeString": "contract ERC721"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1010:46:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5455,
                            "name": "candidateContract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5449,
                            "src": "1074:17:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ERC721_$6435",
                              "typeString": "contract ERC721"
                            }
                          },
                          "id": 5456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "implementsERC721",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6376,
                          "src": "1074:34:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_bool_$",
                            "typeString": "function () pure external returns (bool)"
                          }
                        },
                        "id": 5457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1074:36:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5454,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1066:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1066:45:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5459,
                  "nodeType": "ExpressionStatement",
                  "src": "1066:45:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5460,
                      "name": "nonFungibleContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5720,
                      "src": "1121:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5461,
                      "name": "candidateContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5449,
                      "src": "1143:17:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ERC721_$6435",
                        "typeString": "contract ERC721"
                      }
                    },
                    "src": "1121:39:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC721_$6435",
                      "typeString": "contract ERC721"
                    }
                  },
                  "id": 5463,
                  "nodeType": "ExpressionStatement",
                  "src": "1121:39:14"
                }
              ]
            },
            "documentation": "@dev Constructor creates a reference to the NFT ownership contract\n  and verifies the owner cut is in the valid range.\n @param _nftAddress - address of a deployed contract implementing\n  the Nonfungible Interface.\n @param _cut - percent cut the owner takes on each auction, must be\n  between 0-10,000.",
            "id": 5465,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "ClockAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5433,
                  "name": "_nftAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 5465,
                  "src": "900:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5432,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "900:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5435,
                  "name": "_cut",
                  "nodeType": "VariableDeclaration",
                  "scope": 5465,
                  "src": "921:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5434,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "899:35:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5437,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "942:0:14"
            },
            "scope": 5704,
            "src": "878:289:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5493,
              "nodeType": "Block",
              "src": "1468:210:14",
              "statements": [
                {
                  "assignments": [
                    5469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5469,
                      "name": "nftAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 5494,
                      "src": "1478:18:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5468,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1478:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5473,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5471,
                        "name": "nonFungibleContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5720,
                        "src": "1507:19:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_ERC721_$6435",
                          "typeString": "contract ERC721"
                        }
                      ],
                      "id": 5470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1499:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 5472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1499:28:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1478:49:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5475,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1559:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5476,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1559:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5477,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19850,
                            "src": "1573:5:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1559:19:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5482,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5479,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "1594:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5480,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1594:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5481,
                            "name": "nftAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5469,
                            "src": "1608:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1594:24:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1559:59:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5474,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "1538:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1538:90:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5485,
                  "nodeType": "ExpressionStatement",
                  "src": "1538:90:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5489,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20686,
                          "src": "1658:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ClockAuction_$5704",
                            "typeString": "contract ClockAuction"
                          }
                        },
                        "id": 5490,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "balance",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1658:12:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5486,
                        "name": "nftAddress",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "1638:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "id": 5488,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1638:19:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 5491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1638:33:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5492,
                  "nodeType": "ExpressionStatement",
                  "src": "1638:33:14"
                }
              ]
            },
            "documentation": "@dev Remove all Ether from the contract, which is the owner's cuts\n  as well as any Ether sent directly to the contract address.\n  Always transfers to the NFT contract, but can be called either by\n  the owner or the NFT contract.",
            "id": 5494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdrawBalance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5466,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1456:2:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5467,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1468:0:14"
            },
            "scope": 5704,
            "src": "1432:246:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5555,
              "nodeType": "Block",
              "src": "2470:333:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5520,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 20639,
                              "src": "2494:3:14",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 5521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2494:10:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5522,
                            "name": "_tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5496,
                            "src": "2506:8:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5519,
                          "name": "_owns",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5794,
                          "src": "2488:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
                            "typeString": "function (address,uint256) view returns (bool)"
                          }
                        },
                        "id": 5523,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2488:27:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5518,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "2480:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2480:36:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5525,
                  "nodeType": "ExpressionStatement",
                  "src": "2480:36:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5527,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "2534:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2534:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5529,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5496,
                        "src": "2546:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5526,
                      "name": "_escrow",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5810,
                      "src": "2526:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2526:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5531,
                  "nodeType": "ExpressionStatement",
                  "src": "2526:29:14"
                },
                {
                  "assignments": [
                    5533
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5533,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5556,
                      "src": "2565:22:14",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5532,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "2565:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5549,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5535,
                        "name": "_seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5504,
                        "src": "2611:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5537,
                            "name": "_startingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5498,
                            "src": "2640:14:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2632:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 5538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2632:23:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5540,
                            "name": "_endingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5500,
                            "src": "2677:12:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5539,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2669:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": "uint128"
                        },
                        "id": 5541,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2669:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5543,
                            "name": "_duration",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5502,
                            "src": "2711:9:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2704:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 5544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2704:17:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5546,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20641,
                            "src": "2742:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 5545,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2735:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint64_$",
                            "typeString": "type(uint64)"
                          },
                          "typeName": "uint64"
                        },
                        "id": 5547,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2735:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      ],
                      "id": 5534,
                      "name": "Auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5718,
                      "src": "2590:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_struct$_Auction_$5718_storage_ptr_$",
                        "typeString": "type(struct ClockAuctionBase.Auction storage pointer)"
                      }
                    },
                    "id": 5548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "structConstructorCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2590:166:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_memory",
                      "typeString": "struct ClockAuctionBase.Auction memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2565:191:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5551,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5496,
                        "src": "2778:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5552,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5533,
                        "src": "2788:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_memory_ptr",
                          "typeString": "struct ClockAuctionBase.Auction memory"
                        }
                      ],
                      "id": 5550,
                      "name": "_addAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5864,
                      "src": "2766:11:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_Auction_$5718_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,struct ClockAuctionBase.Auction memory)"
                      }
                    },
                    "id": 5553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2766:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5554,
                  "nodeType": "ExpressionStatement",
                  "src": "2766:30:14"
                }
              ]
            },
            "documentation": "@dev Creates and begins a new auction.\n @param _tokenId - ID of token to auction, sender must be owner.\n @param _startingPrice - Price of item (in wei) at beginning of auction.\n @param _endingPrice - Price of item (in wei) at end of auction.\n @param _duration - Length of time to move between starting\n  price and ending price (in seconds).\n @param _seller - Seller, if not the message sender",
            "id": 5556,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5507,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5506,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19713,
                  "src": "2319:13:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2319:13:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5509,
                    "name": "_startingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5498,
                    "src": "2364:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5510,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5508,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "2341:22:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2341:38:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5512,
                    "name": "_endingPrice",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5500,
                    "src": "2411:12:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5513,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5511,
                  "name": "canBeStoredWith128Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5776,
                  "src": "2388:22:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2388:36:14"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5515,
                    "name": "_duration",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5502,
                    "src": "2455:9:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 5516,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5514,
                  "name": "canBeStoredWith64Bits",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5764,
                  "src": "2433:21:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_uint256_$",
                    "typeString": "modifier (uint256)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2433:32:14"
              }
            ],
            "name": "createAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5505,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5496,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2159:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5495,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2159:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5498,
                  "name": "_startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2185:22:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5497,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2185:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5500,
                  "name": "_endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2217:20:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5499,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2217:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5502,
                  "name": "_duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2247:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5501,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2247:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5504,
                  "name": "_seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5556,
                  "src": "2274:15:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5503,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2274:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2149:146:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5517,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2470:0:14"
            },
            "scope": 5704,
            "src": "2127:676:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5575,
              "nodeType": "Block",
              "src": "3083:145:14",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5564,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5558,
                        "src": "3160:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5565,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3170:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5566,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3170:9:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5563,
                      "name": "_bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5960,
                      "src": "3155:4:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) returns (uint256)"
                      }
                    },
                    "id": 5567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3155:25:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5568,
                  "nodeType": "ExpressionStatement",
                  "src": "3155:25:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5570,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 20639,
                          "src": "3200:3:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3200:10:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5572,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5558,
                        "src": "3212:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 5569,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5825,
                      "src": "3190:9:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 5573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3190:31:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5574,
                  "nodeType": "ExpressionStatement",
                  "src": "3190:31:14"
                }
              ]
            },
            "documentation": "@dev Bids on an open auction, completing the auction and transferring\n  ownership of the NFT if enough Ether is supplied.\n @param _tokenId - ID of token to bid on.",
            "id": 5576,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5561,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5560,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19713,
                  "src": "3065:13:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3065:13:14"
              }
            ],
            "name": "bid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5559,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5558,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5576,
                  "src": "3008:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5557,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3008:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3007:18:14"
            },
            "payable": true,
            "returnParameters": {
              "id": 5562,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3083:0:14"
            },
            "scope": 5704,
            "src": "2995:233:14",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5610,
              "nodeType": "Block",
              "src": "3554:231:14",
              "statements": [
                {
                  "assignments": [
                    5582
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5582,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5611,
                      "src": "3564:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5581,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "3564:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5586,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5583,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "3590:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5585,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5584,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5578,
                      "src": "3607:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3590:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3564:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5589,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5582,
                            "src": "3647:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5588,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "3634:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5590,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5587,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3626:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3626:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5592,
                  "nodeType": "ExpressionStatement",
                  "src": "3626:30:14"
                },
                {
                  "assignments": [
                    5594
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5594,
                      "name": "seller",
                      "nodeType": "VariableDeclaration",
                      "scope": 5611,
                      "src": "3666:14:14",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5593,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "3666:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5597,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 5595,
                      "name": "auction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5582,
                      "src": "3683:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction storage pointer"
                      }
                    },
                    "id": 5596,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "seller",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5709,
                    "src": "3683:14:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3666:31:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5599,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 20639,
                            "src": "3715:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 5600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3715:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5601,
                          "name": "seller",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5594,
                          "src": "3729:6:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3715:20:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5598,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "3707:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3707:29:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5604,
                  "nodeType": "ExpressionStatement",
                  "src": "3707:29:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5606,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5578,
                        "src": "3761:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5607,
                        "name": "seller",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5594,
                        "src": "3771:6:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5605,
                      "name": "_cancelAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "3746:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 5608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3746:32:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5609,
                  "nodeType": "ExpressionStatement",
                  "src": "3746:32:14"
                }
              ]
            },
            "documentation": "@dev Cancels an auction that hasn't been won yet.\n  Returns the NFT to original owner.\n @notice This is a state-modifying function that can\n  be called while the contract is paused.\n @param _tokenId - ID of token on auction",
            "id": 5611,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5579,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5578,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5611,
                  "src": "3517:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5577,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3516:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5580,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3554:0:14"
            },
            "scope": 5704,
            "src": "3494:291:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5638,
              "nodeType": "Block",
              "src": "4145:159:14",
              "statements": [
                {
                  "assignments": [
                    5621
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5621,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5639,
                      "src": "4155:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5620,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4155:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5625,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5622,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4181:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5624,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5623,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5613,
                      "src": "4198:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4181:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4155:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5628,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5621,
                            "src": "4238:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5627,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4225:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4225:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5626,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4217:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4217:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5631,
                  "nodeType": "ExpressionStatement",
                  "src": "4217:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5633,
                        "name": "_tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5613,
                        "src": "4272:8:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5634,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5621,
                          "src": "4282:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5635,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "seller",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5709,
                        "src": "4282:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5632,
                      "name": "_cancelAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5885,
                      "src": "4257:14:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address)"
                      }
                    },
                    "id": 5636,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4257:40:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5637,
                  "nodeType": "ExpressionStatement",
                  "src": "4257:40:14"
                }
              ]
            },
            "documentation": "@dev Cancels an auction when the contract is paused.\n  Only the owner may do this, and NFTs are returned to\n  the seller. This should only be used in emergencies.\n @param _tokenId - ID of the NFT on auction to cancel.",
            "id": 5639,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 5616,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5615,
                  "name": "whenPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19721,
                  "src": "4097:10:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4097:10:14"
              },
              {
                "arguments": null,
                "id": 5618,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5617,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 19880,
                  "src": "4116:9:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "4116:9:14"
              }
            ],
            "name": "cancelAuctionWhenPaused",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5613,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5639,
                  "src": "4071:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5612,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4071:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4070:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5619,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4145:0:14"
            },
            "scope": 5704,
            "src": "4038:266:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5678,
              "nodeType": "Block",
              "src": "4645:293:14",
              "statements": [
                {
                  "assignments": [
                    5655
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5655,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5679,
                      "src": "4655:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5654,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "4655:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5659,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5656,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "4681:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5658,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5657,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5641,
                      "src": "4698:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4681:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4655:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5662,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5655,
                            "src": "4738:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5661,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "4725:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5663,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4725:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5660,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "4717:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5664,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4717:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5665,
                  "nodeType": "ExpressionStatement",
                  "src": "4717:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5666,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4778:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5667,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "seller",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5709,
                        "src": "4778:14:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5668,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4806:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5669,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5711,
                        "src": "4806:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5670,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4841:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5671,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "endingPrice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5713,
                        "src": "4841:19:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5672,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4874:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5673,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "duration",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5715,
                        "src": "4874:16:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5674,
                          "name": "auction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5655,
                          "src": "4904:7:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                            "typeString": "struct ClockAuctionBase.Auction storage pointer"
                          }
                        },
                        "id": 5675,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "startedAt",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5717,
                        "src": "4904:17:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      }
                    ],
                    "id": 5676,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "4764:167:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint128_$_t_uint128_$_t_uint64_$_t_uint64_$",
                      "typeString": "tuple(address,uint128,uint128,uint64,uint64)"
                    }
                  },
                  "functionReturnParameters": 5653,
                  "id": 5677,
                  "nodeType": "Return",
                  "src": "4757:174:14"
                }
              ]
            },
            "documentation": "@dev Returns auction info for an NFT on auction.\n @param _tokenId - ID of NFT on auction.",
            "id": 5679,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5641,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4435:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4435:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4434:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5644,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4511:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5643,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4511:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5646,
                  "name": "startingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4535:21:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5645,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4535:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5648,
                  "name": "endingPrice",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4566:19:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5647,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5650,
                  "name": "duration",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4595:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5649,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4595:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5652,
                  "name": "startedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 5679,
                  "src": "4621:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5651,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4621:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4501:143:14"
            },
            "scope": 5704,
            "src": "4415:523:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5702,
              "nodeType": "Block",
              "src": "5164:148:14",
              "statements": [
                {
                  "assignments": [
                    5687
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5687,
                      "name": "auction",
                      "nodeType": "VariableDeclaration",
                      "scope": 5703,
                      "src": "5174:23:14",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                        "typeString": "struct ClockAuctionBase.Auction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5686,
                        "name": "Auction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 5718,
                        "src": "5174:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5691,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5688,
                      "name": "tokenIdToAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5726,
                      "src": "5200:16:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Auction_$5718_storage_$",
                        "typeString": "mapping(uint256 => struct ClockAuctionBase.Auction storage ref)"
                      }
                    },
                    "id": 5690,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5689,
                      "name": "_tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5681,
                      "src": "5217:8:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5200:26:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Auction_$5718_storage",
                      "typeString": "struct ClockAuctionBase.Auction storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5174:52:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5694,
                            "name": "auction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5687,
                            "src": "5257:7:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                              "typeString": "struct ClockAuctionBase.Auction storage pointer"
                            }
                          ],
                          "id": 5693,
                          "name": "_isOnAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5985,
                          "src": "5244:12:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_bool_$",
                            "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (bool)"
                          }
                        },
                        "id": 5695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5244:21:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5692,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        20642,
                        20643
                      ],
                      "referencedDeclaration": 20642,
                      "src": "5236:7:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5236:30:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5697,
                  "nodeType": "ExpressionStatement",
                  "src": "5236:30:14"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5699,
                        "name": "auction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5687,
                        "src": "5297:7:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Auction_$5718_storage_ptr",
                          "typeString": "struct ClockAuctionBase.Auction storage pointer"
                        }
                      ],
                      "id": 5698,
                      "name": "_currentPrice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6020,
                      "src": "5283:13:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Auction_$5718_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct ClockAuctionBase.Auction storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 5700,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5283:22:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5685,
                  "id": 5701,
                  "nodeType": "Return",
                  "src": "5276:29:14"
                }
              ]
            },
            "documentation": "@dev Returns the current price of an auction.\n @param _tokenId - ID of the token price we are checking.",
            "id": 5703,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrentPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5682,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5681,
                  "name": "_tokenId",
                  "nodeType": "VariableDeclaration",
                  "scope": 5703,
                  "src": "5088:16:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5680,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5088:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5087:18:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 5685,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5684,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5703,
                  "src": "5151:7:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5151:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5150:9:14"
            },
            "scope": 5704,
            "src": "5063:249:14",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 5705,
        "src": "474:4841:14"
      }
    ],
    "src": "275:5041:14"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-02T14:04:10.976Z"
}