```\\nfunction changeListing(\\n  address tokenToDelist,              // Address of token to be delisted\\n  address tokenToList,                // Address of token to be listed\\n  uint112 listingTarget               // Amount of tokens needed to activate listing\\n) external onlyListedToken(tokenToDelist) onlyOwner() {\\n  // Basic validity checks. ETH cannot be delisted, only one delisting at a time.\\n  require(tokenToDelist != address(0), "DFP: Cannot delist ETH");\\n  ListingUpdate memory update = listingUpdate;\\n  require(update.tokenToDelist == address(0), "DFP: Previous update incomplete");\\n\\n  // Can't list an already listed token\\n  TokenSettings memory _token = listedTokens[tokenToList];\\n  require(_token.state == State.Unlisted, "DFP: Token already listed");\\n\\n  // Set the delisting/listing struct.\\n  update.tokenToDelist = tokenToDelist;\\n  update.tokenToList = tokenToList;\\n  listingUpdate = update;\\n\\n  // Configure the token states for incoming/outgoing tokens\\n  _token.state = State.PreListing;\\n  _token.listingTarget = listingTarget;\\n  listedTokens[tokenToList] = _token;\\n  listedTokens[tokenToDelist].state = State.Delisting;\\n}\\n```\\n